package com.fangngng.pushall.service;

import com.fangngng.pushall.dto.AddTagVO;
import com.fangngng.pushall.dto.Result;
import com.fangngng.pushall.dto.TagQuery;
import com.fangngng.pushall.dto.TopicQuery;
import com.fangngng.pushall.entity.Tag;
import com.fangngng.pushall.entity.Topic;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @author fei.fang
 * @date 2021/4/9
 **/
public interface TagService {

    /**
     * 订阅标签
     * @param tagId
     * @param userEmail
     * @return
     */
    Result<String> subscribeTag(Integer tagId, String userEmail);

    /**
     * 添加tag
     * @param addTagVO
     * @param userEmail
     * @return
     */
    Result<Tag> addTag(AddTagVO addTagVO, String userEmail);

    /**
     * 查找tag下的topic
     * @param addTagVO
     * @return
     */
    List<Topic> getTopicByTag(AddTagVO addTagVO);

    /**
     * 获取最热的10个tag
     * @return
     */
    List<Tag> getHottest10Tag();

    /**
     * 获取最新的10个tag
     * @return
     */
    List<Tag> getNewest10Tag();

    /**
     * 查询订阅的主题
     *
     * @param pageNumber
     * @param pageSize
     * @param sort
     * @param topicQuery
     * @return
     */
    PageInfo<Tag> getSubTagByPage(int pageNumber, int pageSize, String sort, TagQuery topicQuery);

}
